sebschauer.de – willkommen!
Lexikon * Aktuelles * FAQ * Ich * Kontakt * Impressum * * english
Nerd-Lexikon für Nicht-Nerds: Begriffe aus diversen Fachgebieten, für Nichtfachmänner verständlich erläutert. Über das Lexikon: Über das Lexikon.
<< Kompression (Audio) ... Index ... Kompression >>
KOMPRESSION (GRAFIK)
(Kategorie: Computer)

Hier soll skizziert werden, wie Bilder komprimiert werden können. - Wie speichert man ein Bild denn überhaupt in digitaler Form ab?

Nun, um mit Bildern im Rechner umgehen zu können, werden diese in viele einzelne Punkte zerlegt, die sogenannten Pixel (px) - und jedem dieser Punkte wird dann eine Farbe zugewiesen. Um eine Größenordnung zu haben: Typischerweise haben Fotos, die man heutzutage mit seiner Digitalkamera macht, Auflösungen von vielleicht 2000x3000 Pixel, es werden also bei jedem Foto grob sechs Millionen Bildpunkte gespeichert (6 MEGApixel).

Jeder dieser Bildpunkte bekommt nun eine Farbe zugewiesen. Früher gab es nur Schwarz-weiß-Monitore (oder auch Monochrom-Bildschirme genannt), damals war es einfach: Ein Bildpunkt war AN oder AUS. D.h. pro Bildpunkt genügte 1 Bit an Information! In unserem Fall hätten 6 Millionen Bildpunkte also eine Speichergröße von 6 Millionen Bit, das sind 750 000 Byte oder 0.75 Megabyte. Allerdings: Das Foto wäre kaum wiederzuerkennen, denn es hätte wirklich nur schwarze Punkte. Jegliche Farbe wäre verschwunden.

Um irgendwelche Abstufungen zu erreichen, könnte man jedem Bildpunkt nun eine Helligkeit zuordnen, sagen wir: 0 für ganz weiß und 255 für ganz schwarz. (Der Wert 128 wäre dann ein mittelhelles Grau.) Auf diese Weise könnten wir immerhin schon echte Schwarz-Weiß-Bilder mit Schattierungen speichern! Die Werte von 0 bis 255 entsprechen genau den Werten, die wir in einem Byte speichern können. Wir benötigen daher als Speicherplatz für unser Foto 6 Millionen Pixel * 1 Byte, also 6 Megabyte.

Aber wir möchten natürlich lieber ein Farbfoto speichern, wir müssen also irgendwie die Informationen über die Farben im Bild festhalten. Normalerweise handelt es sich bei Farben im Rechner um eine Mischung aus Rot, Gelb und Blau (RGB). Es ist, als hätte man (wie das im Fernseher ja auch tatsächlich funktioniert) drei kleine bunte Lämpchen pro Punkt - und jedes dieser Lämpchen hat einen Dimmer mit z.B. 256 Stufen (von 0 bis 255, also ein Byte!). Ein Punkt, der NUR Gelb leuchten soll, bekommt also den Wert 0-255-0. D.h. pro Bildpunkt benötigt man drei Byte zur Beschreibung; unser 6Mpx-Bild von oben hätte damit eine Dateigröße von 6*3 = 18 Megabyte. Das ist schon ziemlich groß!

Und es wird noch schlimmer: Man kann die Farben auch noch feiner abstufen und z.B. pro Farbwert nicht nur 256 Abstufungen nehmen (also 8 Bit oder ein Byte), sondern noch viel feinere Farbtöne erzeugen, z.B. mit 16 Bit oder 2 Byte. Hiermit kann man bereits 65536 Farbwerte (pro Grundfarbe!) darstellen. Sieht toll aus, bedeutet aber auch: Unser Bild mit 6 Millionen Pixel bekommt nun pro Pixel 6 Byte an Farbinformationen! (Nämlich 3 Grundfarben mit je 2-Byte-Werten). Damit wächst die Datei bereits auf 36 Megabyte an; zuviel, um mal eben ein Bild per Mail zu schicken.

Was tun? Wir müssen unser Foto kleiner bekommen!

Hier nun setzen diverse Grafikkompressionsformate an, das bekannteste ist vermutlich JPG. Wie funktioniert das? Wir stellen uns vor, wie unser (unkomprimimiertes!) Bild momentan gespeichert ist, nämlich etwa so (px = Pixel mit Nummer...):

Farbprofil: RGB; Auflösung 2000x3000;
px 001: 123-221-002; px 002: 123-221-002; px 003: 124-157-017; ...
px 011: 125-201-005; px 012: 125-197-017; px 013: 127-180-030; ...
...
usw. (natürlich nicht GENAU so, aber vom Prinzip her...) Jedes Pixel ist also einzeln aufgezählt und der Farbwert notiert. Dies ist die genaueste Darstellung eines digitalen Bildes; das Dateiformat BITMAP (foto.bmp) funktioniert etwa so. Daher sind diese Dateien immer viel größer als die gleichen Bilder als JPG-Dateien (Warum? Gleich, Geduld!); aber: sie sehen besser aus, wenn man z.B. hineinzoomt.

Und JPG? Wandelt man ein solches Bild ins JPG-Format um, passiert (extrem vereinfacht gesagt!) etwa folgendes:

Das Kompressionsprogramm teilt unser Bild in viele kleine Rechtecke auf, die vielleicht eine Größe von je 3x3 oder 4x4 Pixel haben. Und von diesen Rechtecken berechnet und speichert es jeweils die "Durchschnittsfarbe"! Zusätzlich erkennt es z.B. eventuell, ob es Bereiche gibt, in denen es die Rechtecke noch viel größer machen könnte (z.B. bei der weißen Wand im Hintergrund unseres Passfotos), was natürlich auch enorm (Speicher-)Platz sparen würde, und diverse andere Details mehr. Wie also im Artikel über Kompression bereits gesehen versucht auch dieser Algorithmus mehr oder weniger, die Struktur hinter den Daten zu erkennen und sich zunutze zu machen.

Wo jetzt allerdings genau die Unterschiede zwischen TIFF, JPEG, PNG, GIF und den vielen anderen Grafik-Formaten liegen: Dies auszuführen passiert ein andermal vielleicht...

<< Kompression (Audio) ... Index ... Kompression >>